package com.example.calendar.data.model

import android.os.Parcelable
import androidx.room.Entity
import androidx.room.PrimaryKey
import kotlinx.parcelize.Parcelize
import org.threeten.bp.LocalDateTime
import java.util.UUID

/**
 * Represents a category for events or tasks
 */
@Parcelize
@Entity(tableName = "categories")
data class Category(
    @PrimaryKey
    val id: String = UUID.randomUUID().toString(),
    val name: String,
    val color: Int,
    val type: CategoryType,
    val isDefault: Boolean = false,
    val createdAt: LocalDateTime = LocalDateTime.now(),
    val updatedAt: LocalDateTime = LocalDateTime.now(),
    val isDeleted: Boolean = false
) : Parcelable

/**
 * Type of category (event or task)
 */
enum class CategoryType {
    EVENT,
    TASK,
    BOTH
} 